package projeto.administrativo.usuarios.cih;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import nucleo.comuns.visao.NucleoTab;
import plataforma.autenticacao.cdp.GrupoAcesso;
import plataforma.cih.PainelDuploListbox;

public class AbaGrupoAcesso extends NucleoTab {

	PainelDuploListbox painelGrupoAcesso;

	public AbaGrupoAcesso() {

		montar();
	}

	private void montar() {
		setNomeTab("Grupos de Acesso");

		painelGrupoAcesso = new PainelDuploListbox() {

			@Override
			public String recuperarLabel(Object obj) {
				GrupoAcesso grupoAcesso = (GrupoAcesso) obj;

				return grupoAcesso.getDescricao();
			}
		};

		setConteudoTab(painelGrupoAcesso);

	}

	public boolean isValid() {

		return true;
	}



	public void setGrupoAcesso(Set<GrupoAcesso> gruposAcesso,
			List<GrupoAcesso> todosGruposAcesso) {
		// converter set pra lista		
		List<GrupoAcesso> listSelecionados = new ArrayList<GrupoAcesso>(gruposAcesso);
		painelGrupoAcesso.preencherComDados(todosGruposAcesso, listSelecionados, new ComparadorGrupoAcesso());

	}
	
	public class ComparadorGrupoAcesso implements Comparator<GrupoAcesso>{

		@Override
		public int compare(GrupoAcesso o1, GrupoAcesso o2) {
		//	return (-1) * o1.getDescricao().compareTo(o2.getDescricao());
			return  o1.getDescricao().compareTo(o2.getDescricao());
		}
		
		
		
	}

	public Set<GrupoAcesso> getSetGrupoAcesso() {
		return new HashSet(painelGrupoAcesso.getSelecionados());
	}
	

}
